home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / artemis / artsrc2 / rdmos.c < prev    next >
C/C++ Source or Header  |  1994-06-01  |  1KB  |  85 lines

  1. /*
  2.     rdmos.c
  3. */
  4.  
  5.  
  6. #include <ryosuke.h>
  7. #include <usrlib.h>
  8. #include <mos.h>
  9.  
  10.  
  11. #define    STARTX    320
  12. #define    STARTY    240
  13.  
  14.  
  15. static char mwk[4096];
  16. static char patwk[258];
  17.  
  18. #define    XOFS    50
  19. #define    YOFS    16
  20.  
  21.  
  22. void minit()
  23. {
  24.     MOS_start( mwk, 4096 );
  25.     // MOS_setpos(STARTX,STARTY);
  26.     MOS_horizon(0, 640+XOFS*2);
  27.     MOS_vertical(0, 480+YOFS*2);
  28.     MOS_setpos(XOFS+0,YOFS+0);
  29.     MOS_typeRom(81,XOFS,YOFS, patwk);
  30. }
  31.  
  32.  
  33. void mend()
  34. {
  35.     MOS_end();
  36. }
  37.  
  38.  
  39. void    rdmos(MSDAT *msdat)
  40. {
  41.     int msx,msy,msb;  char i,*bp;
  42.     MOS_rdpos(&msb,&msx,&msy);
  43.     msx -= XOFS;
  44.     msy -= YOFS;
  45.     msdat->dx = msx - msdat->x;
  46.     msdat->dy = msy - msdat->y;
  47.     msdat->x = msx;
  48.     msdat->y = msy;
  49.     // msdat->x += (msdat->dx = msx - STARTX);
  50.     // msdat->y += (msdat->dy = msy - STARTY);
  51.     // MOS_setpos(STARTX,STARTY);
  52.     for (i=0; i<2; i++,(msb>>=1))
  53.     {
  54.         bp = (i==0 ? &(msdat->btn1) : &(msdat->btn2));
  55.         if (msb & 1)
  56.             *bp = ((*bp == OFF || *bp == ONOFF) ? OFFON : ON);
  57.         else
  58.             *bp = ((*bp == OFF || *bp == ONOFF) ? OFF : ONOFF);
  59.     }
  60. }
  61.  
  62.  
  63. void mous_setpos(MSDAT *msdat, int x,int y)
  64. {
  65.     MOS_setpos(XOFS+x,YOFS+y);
  66.     msdat->x = x;
  67.     msdat->y = y;
  68.     msdat->dx = msdat->dy = 0;
  69. }
  70.  
  71.  
  72. void mous_typeRom(int type)
  73. {
  74.     MOS_typeRom(type, XOFS,YOFS, patwk);
  75. }
  76.  
  77.  
  78. void mous_type(int mode, char *pattern)
  79. {
  80.     MOS_type(mode, XOFS,YOFS, pattern);
  81. }
  82.  
  83.  
  84. /* end of rdmos.c */
  85.